import re
import pywinauto
from pywinauto.application import Application
import win32gui  # .SetForegroundWindow()
import time
import os
import time

import shutil

from pathlib import Path

# 说明：需要安装pywinauto库
# 1. 修改ds_path为你的软件安装路径
# 2. 先运行ftr2000，点击前言页，保持打开不要关闭，也不要点击其他页面
# 3. 运行python，自动把ftr窗口置顶
# 4. 观察软件是否正常点击，开始一次运行可设置少点几次，检查html文件是否真正复制出来了。
# 5. click_times改成最大页数，再次运行python，提取所有页面
if __name__ == '__main__':
    ds_path = Path(r"C:\DS")  # 改成你自己的软件安装路径
    htmls_path = Path(rf'D:\dl\htmls')  # 需要html复制到哪里
    click_times = 3  # 软件运行正确后，改成最大页数，再次运行
    ftr_path = ds_path / "FTR2000.exe"
    show_temp_path = ds_path / 'ShowTemp'
    tmp_dirs = os.listdir(show_temp_path)
    assert len(tmp_dirs) == 1
    temp_path = show_temp_path / tmp_dirs[0] / 'record.html'

    app = Application(backend='win32')
    exe_path = ftr_path
    app.connect(path=exe_path)
    win = app.window(title_re="中国共产党*")
    win32gui.SetForegroundWindow(win.wrapper_object().handle)
    tool = win.window(class_name='ToolbarWindow32')
    # tool.print_control_identifiers()
    rec = tool.rectangle()
    half_height = int((rec.bottom - rec.top) / 2)
    click_pos = (rec.right - half_height, rec.top + half_height)
    for i in range(1, click_times + 1):
        pywinauto.mouse.click(coords=click_pos)
        print()
        des_path = htmls_path / rf'{i}.html'
        if temp_path.exists() and not des_path.exists():
            shutil.copy2(temp_path, des_path)
            print(f'第{i}次点击,文件大小{os.path.getsize(temp_path)}')
